package cn.me.alphamq.broker.event.spi.listener.nameserver;

import cn.me.alphamq.broker.cache.Container;
import cn.me.alphamq.broker.event.model.nameserver.Shift2MasterEvent;
import cn.me.alphamq.common.event.Listener;

/**
 * 让从 broker 节点变成主 broker 节点的事件监听器
 * <p>
 * 没有使用 事件-监听 和 SPI 机制，仅用于 {@link cn.me.alphamq.broker.netty.nameserver.BrokerNameServerHandler} 类
 *
 * @author f
 */
public class Shift2MasterListener implements Listener<Shift2MasterEvent> {

    @Override
    public void onReceive(Shift2MasterEvent event) throws Exception {
        // 将本节点设置为 主节点
        Container.getClusterProperties().setMasterRole();

        // 清理与原主节点连接的客户端
        Container.getSlaveSyncClient().clean();
    }
}
